package com.acsior.hibernate.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.acsior.dac.impl.hibernate.vo.GeneratorKey;
import com.acsior.dac.impl.hibernate.vo.HibernatePersistantIntegerIdVO;

/**
 * ServiceLog entity. @author MyEclipse Persistence Tools <b><i>powered by
 * Belev</i></b>
 */
@Entity
@Table(name = "service_log")
@GeneratorKey(tableName = "service_log")
public class ServiceLogVO extends HibernatePersistantIntegerIdVO {

	private static final long serialVersionUID = 1066297962998193670L;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "recipient_customer_id")
	private CustomerVO customerByRecipientCustomer;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "sender_customer_id")
	private CustomerVO customerBySenderCustomer;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "employee_id", nullable = false)
	private EmployeeVO employee;

	@Column(name = "event", nullable = false)
	private String event;

	@Column(name = "event_date", nullable = false, length = 23)
	private Date eventDate;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "nom_revision_status_id", nullable = false)
	private NomRevisionStatusVO nomRevisionStatus;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "nom_service_status_id", nullable = false)
	private NomServiceStatusVO nomServiceStatus;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "service_request_id", nullable = false)
	private ServiceRequestVO serviceRequest;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "structure_id", nullable = false)
	private StructureVO structure;

	/** default constructor */
	public ServiceLogVO() {
		super();
	}

	/** @return the customerByRecipientCustomer */
	public CustomerVO getCustomerByRecipientCustomer() {
		return this.customerByRecipientCustomer;
	}

	/** @return the customerBySenderCustomer */
	public CustomerVO getCustomerBySenderCustomer() {
		return this.customerBySenderCustomer;
	}

	/** @return the employee */
	public EmployeeVO getEmployee() {
		return this.employee;
	}

	/** @return the event */
	public String getEvent() {
		return this.event;
	}

	/** @return the eventDate */
	public Date getEventDate() {
		return this.eventDate;
	}

	/** @return the nomRevisionStatus */
	public NomRevisionStatusVO getNomRevisionStatus() {
		return this.nomRevisionStatus;
	}

	/** @return the nomServiceStatus */
	public NomServiceStatusVO getNomServiceStatus() {
		return this.nomServiceStatus;
	}

	/** @return the serviceRequest */
	public ServiceRequestVO getServiceRequest() {
		return this.serviceRequest;
	}

	/** @return the structure */
	public StructureVO getStructure() {
		return this.structure;
	}

	/**
	 * @param customerByRecipientCustomer
	 *            the customerByRecipientCustomer to set
	 */
	public void setCustomerByRecipientCustomer(CustomerVO customerByRecipientCustomer) {
		this.customerByRecipientCustomer = customerByRecipientCustomer;
	}

	/**
	 * @param customerBySenderCustomer
	 *            the customerBySenderCustomer to set
	 */
	public void setCustomerBySenderCustomer(CustomerVO customerBySenderCustomer) {
		this.customerBySenderCustomer = customerBySenderCustomer;
	}

	/**
	 * @param employee
	 *            the employee to set
	 */
	public void setEmployee(EmployeeVO employee) {
		this.employee = employee;
	}

	/**
	 * @param event
	 *            the event to set
	 */
	public void setEvent(String event) {
		this.event = event;
	}

	/**
	 * @param eventDate
	 *            the eventDate to set
	 */
	public void setEventDate(Date eventDate) {
		this.eventDate = eventDate;
	}

	/**
	 * @param nomRevisionStatus
	 *            the nomRevisionStatus to set
	 */
	public void setNomRevisionStatus(NomRevisionStatusVO nomRevisionStatus) {
		this.nomRevisionStatus = nomRevisionStatus;
	}

	/**
	 * @param nomServiceStatus
	 *            the nomServiceStatus to set
	 */
	public void setNomServiceStatus(NomServiceStatusVO nomServiceStatus) {
		this.nomServiceStatus = nomServiceStatus;
	}

	/**
	 * @param serviceRequest
	 *            the serviceRequest to set
	 */
	public void setServiceRequest(ServiceRequestVO serviceRequest) {
		this.serviceRequest = serviceRequest;
	}

	/**
	 * @param structure
	 *            the structure to set
	 */
	public void setStructure(StructureVO structure) {
		this.structure = structure;
	}

}